﻿/************************************************************************
** 文  件：
**	AiMonitor.h
** 功  能：
**	AI识别控制器
** 作  者：
**	email:lixx2048@163.com
**  wechat:lixiang6153
**  QQ:941415509
** 日  期：
**	2024/03/15	14:00:00
** 说  明：
**	无
** 版  本：
**	2024/03/15	14:00:00		1.0		lixx2048@163.com
/************************************************************************/
#pragma once
#include <thread>
#include <memory>
#include "Detector.h"

class AiMonitor :
	public std::enable_shared_from_this<AiMonitor>
{
public:
	// 构造函数
	AiMonitor();
	virtual ~AiMonitor();

public:
	// 启动分析
	void Start();
	// 停止分析
	void Stop();
	// 取检测器
	DetectorPtr Find(std::string device);

protected:
	// 运行标志
	bool m_run;
	// 启动线程
	std::thread m_thread;
	// 检测大锁
	std::mutex m_lock;
	// 视频检测表
	Detectors m_detectors;
};

typedef std::shared_ptr<AiMonitor> AiMonitorPtr;